﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Didsoft.Mvc.Controller;
using SIOGDE.AccesoDatos.Entidades;
using SIOGDE.AccesoDatos.Entidades.Lites;
using SIOGDE.Negocios;
using SIOGDE.Negocios.Servicios;

namespace SIOGDE.Web.Controllers
{
    public class BuscadorUMController : SimpleBaseController
    {   
        /// <summary>
        /// URLDestino = ../Buscador/Index?URLDestino=Controlador|Accion
        /// </summary>
        /// <param name="ide"></param>
        /// <returns></returns>
        public ActionResult Index(string URLDestino)
        {            
            return View(new Buscador() { URLDestino = URLDestino });
        }
        [HttpPost]
        public ActionResult Index(Buscador buscador)
        {   
            try
            {
                string[] destino = buscador.URLDestino.Split('|');
                UnidadMilitar unidad = BusinessFactory.Current.GetUnidadMilitarNegocios().ObtenerPorId(int.Parse(buscador.Guid));

                return RedirectToAction(destino[1], destino[0], new { GuidUM = unidad.Guid });
            }
            catch (Exception)
            {
                ModelState.AddModelError("DataFormError", "URL destino mal formado");
                return View(buscador);
            }            
        }

        [HttpGet]
        public ActionResult BuscarUM(string URLDestino, string filtro)
        {
            IUnidadMilitarNegociosServicio servicio = new UnidadMilitarNegocios();
            List<UnidadMilitar> unidades = servicio.BuscarPorFiltro(filtro);
            ViewBag.URLDestino = URLDestino;
            return View(unidades);
        }

        /// <summary>
        /// UnidadSeleccionada = GuidUnidadMilitar
        /// </summary>
        /// <param name="URLDestino"></param>
        /// <param name="UnidadSeleccionada"></param>
        /// <returns></returns>
        [HttpPost]
        public ActionResult BuscarUM(string URLDestino, string GuidUM, string varios )
        {
            string[] destino = URLDestino.Split('|');
            return RedirectToAction(destino[1], destino[0], new { Guid = GuidUM});

        }

    }
}
